package org.hit.burkun.mapping;

import java.util.Collection;
import java.util.Map;
import java.util.Set;

public interface IOfflineMappingProcessor {
	public static enum DBKEY {
		// Category:UniProt
		UniProtKB_AC("AC"),
		// Category:Other sequence databases
		EMBL_GenBank_DDBJ("EMBL_ID"), HGNC("HGNC_ID"), RefSeq("REFSEQ_ID"), GeneID(
				"P_ENTREZGENEID"), GENE_SYMBOL("GENE_SYMBOL"), MIM("MIM_ID"), GENE_SYMBOL_SYN(
				"GENE_SYMBOL_SYNS");
		private String tag;

		DBKEY(String tag) {
			this.tag = tag;
		}

		public String getTag() {
			return tag;
		}

		public boolean equals(String str) {
			return str.equals(tag);
		}

		@Override
		public String toString() {
			return tag;
		}
	}

	public void begin();

	public void end();

	public void process(DBKEY fromKey, DBKEY toKey,
			Map<String, Set<String>> resData);

	public void mapping(DBKEY fromKey, DBKEY toKey, Collection<String> data);

}
